package me.raih.mapper;

import me.raih.pojo.po.Appointment;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @Author Raih
 * @Time 2021/1/28  18:58
 *
 * 商品预约
 *
 */
@Mapper
@Repository
public interface AppointmentMapper {


    /**
     * 用户添加商品状态
     * @param username 用户名
     * @param waresNo 商品码
     * @return 添加进来
     */
    int addUserWaresStatus(@Param("username") String username, @Param("no") String waresNo);

    /**
     * 用户取消预约商品
     * @param username 用户名
     * @param waresNo 商品码
     * @return 删除掉
     */
    int deleteUserWaresStatus(@Param("username") String username, @Param("no") String waresNo);

    /**
     * 本用户是否预约了这件商品
     * @param username 用户名
     * @param waresNo 商品码
     * @return 预约了吗？
     */
    Appointment findAppointmentMessage(@Param("username") String username, @Param("no") String waresNo);

    /**
     * 商品被预约了多少次
     * @param waresNo 商品码
     * @return 多少次呢？
     */
    int findWaresAppointmentCount(@Param("no") String waresNo);

    /**
     * 找 用户预约的商品
     * @param username 用户
     * @return 商品集合
     */
    List<Appointment> findAppointmentByUsername(@Param("username") String username);

    /**
     * 查找 预约商品名和用户名的集合
     * @param currentPage  当前页
     * @param pageSize 页面大小
     * @return 商品名与用户名关联的map
     */
    List<Appointment> findAppointmentByPage(@Param("currentPage") int currentPage, @Param("pageSize") int pageSize);

    /**
     * 查找 符合要求的数量
     * @return 符合要求的数量
     */
    int findAppointmentByPageNumber();
}
